/**      
 * @file		ShapeRunner.cpp
 * @description		This example demonstrates the redefinition of 
 *			the toString() function in the base class Shape.
 * @course		CSCI 123 Section 00000
 * @assignment 
 * @date		mm/dd/yyyy
 * @author		Brad Rippe (00000000) brippe@fullcoll.edu
 * @version		1.0
 */
#include "Shape.h"
#include "Circle.h"
#include "Rectangle.h"
#include <iostream>
using namespace std;

/**
 * @return zero if the application executes successfully
 */
int main() {
  Shape shape;
  shape.setColor("red");
  shape.setFilled(true);
  cout << shape.toString() << endl;

  Circle circle(5);
  cout	<< " Circle radius: " << circle.getRadius()
	<< " area: " << circle.getArea()
	<< " perimeter: " << circle.getPerimeter() << endl;
  cout  << circle.toString() << endl;

  // access to the base class function definition
  cout  << "Base Class toString()\n";
  cout  << circle.Shape::toString() << endl;

  Rectangle rectangle(2, 3);
  rectangle.setColor("orange");
  rectangle.setFilled(true);
  cout  << " Rectangle width: " << rectangle.getWidth()
	<< " height: " << rectangle.getHeight()
	<< " area: " << rectangle.getArea()
	<< " perimeter: " << rectangle.getPerimeter() << endl;
  cout  << rectangle.toString() << endl;

  return 0;
}
